home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Pier Shareware 1
/
Pier Shareware 1.iso
/
007a
/
courspas.exe
/
CHAP11.EXE
/
TYP4.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1991-01-06
|
3KB
|
120 lines
program supprimElement; {TYP4.PAS}
uses
crt; { unité de Turbo Pascal 6 }
const
nom = 'TESTSTR.DAT'; { fichier sur disquette }
type
str20 = string[20];
var
element: str20;
f : file of str20;
{------------------------------------------------}
{ attendre }
{------------------------------------------------}
procedure attendre;
var ch: char;
begin
gotoxy(1,25); write('Veuillez appuyer sur une touche...');
ch:= readkey;
gotoxy(1,25); clreol
end;
{------------------------------------------------}
{ lireElements }
{------------------------------------------------}
procedure lireElements;
var i: integer; { compteur }
begin
clrscr;
seek(f,0); { pointeur au début du fichier }
writeln('Liste des éléments du fichier:');
writeln;
writeln('Nombre d''éléments: ',filesize(f));
writeln;
i:= -1; { valeur de début }
while not eof(f) do
begin
inc(i); { i:= i+1, pour compter}
read(f,element); { lecture des éléments }
writeln(i:3,': ',element); { affichage}
end; { while }
end;
{------------------------------------------------}
{ suppression }
{------------------------------------------------}
procedure suppression(supprElement: longint);
var i: longint; { compteur }
begin
if supprElement = filesize(f)-1
then begin
{ Si la suppression concerne }
{ le dernier élément, nous ne}
{ faisons rien, il sera de }
{ toute façon supprimé! }
end
else begin
for i:= supprElement+1 to (filesize(f)-1) do
begin
seek(f,i); { élément suivant }
read(f,element); { lecture de l'élément }
seek(f,(i-1)); { revenir d'un élément }
write(f,element); { écriture de l'élément }
end; { for }
end; { else }
seek(f,(filesize(f)-1)); { dernier élément }
truncate(f); { tronquer le fichier }
end;
{------------------------------------------------}
{ dialogue }
{------------------------------------------------}
procedure dialogue;
var position,
nombr : longint;
begin
nombr:= filesize(f);
if nombr = 0 then
begin
clrscr;
writeln('Le fichier ne contient aucun élément');
writeln('à supprimer! ');
attendre;
end else
begin
repeat
gotoxy(1,24);
write('Quel élément désirez-vous supprimer?: ');
readln(position);
until (position >= 0) and (position <= nombr-1);
suppression(position);
end; { else }
end;
{------------------------------------------------}
begin { programme principal }
clrscr;
assign(f,nom); { liaison des fichiers }
{$I-} { inhibe la détect. d'erreurs }
reset(f); { ouvre le fichier précédent }
{$I+} { rétabl. la détect. d'erreurs }
if ioResult = 0
then begin
lireElements;
dialogue;
lireElements;
attendre;
close(f);
end
else begin
writeln('Erreur à l''ouverture');
writeln('du fichier! ');
writeln;
writeln('Prog.interrompu! ');
attendre;
end;
clrscr;
end.